package com.ruoyi.oar.service;

import java.util.List;
import java.util.Map;
import java.util.Optional;

import com.ruoyi.oar.domain.OarCheckInRecord;
import com.ruoyi.oar.domain.dto.OarCheckInRecordDTO;
import com.ruoyi.oar.domain.query.OarCheckInRecordQuery;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 租客入住记录Service接口
 * 
 * @author ruoyi
 * @date 2022-02-21
 */
public interface OarCheckInRecordService
{
    /**
     * 查询租客入住记录
     * 
     * @param id 租客入住记录主键
     * @return 租客入住记录
     */
    public Optional<OarCheckInRecordDTO> selectOarCheckInRecordById(String id);

    /**
     * 查询租客入住记录列表
     * 
     * @param oarCheckInRecordQuery 租客入住记录
     * @return 租客入住记录集合
     */
    public List<OarCheckInRecordDTO> selectOarCheckInRecordList(OarCheckInRecordQuery oarCheckInRecordQuery);

    /**
     * 分页查询租客入住记录列表
     *
     * @param oarCheckInRecordQuery 租客入住记录
     * @return 租客入住记录集合
     */
    public TableDataInfo<OarCheckInRecordDTO> findAll(OarCheckInRecordQuery oarCheckInRecordQuery);

    /**
     * 新增租客入住记录
     * 
     * @param oarCheckInRecordDTO 租客入住记录
     * @return 结果
     */
    public String insertOarCheckInRecord(OarCheckInRecordDTO oarCheckInRecordDTO);

    /**
     * 修改租客入住记录
     * 
     * @param oarCheckInRecordDTO 租客入住记录
     * @return 结果
     */
    public int updateOarCheckInRecord(OarCheckInRecordDTO oarCheckInRecordDTO);

    /**
     * 批量删除租客入住记录
     * 
     * @param ids 需要删除的租客入住记录主键集合
     * @return 结果
     */
    public int deleteOarCheckInRecordByIds(String[] ids);

    /**
     * 删除租客入住记录信息
     * 
     * @param id 租客入住记录主键
     * @return 结果
     */
    public int deleteOarCheckInRecordById(String id);

    /**
     * 解析身份信息
     * @param imgBase64Str
     * @return
     */
    public Map<String,String> getIdCardInfo(String imgBase64Str);

    /**
     * 查询租客入住及单位名称记录
     * @param oarCheckInRecordQuery
     * @return
     */
    public TableDataInfo<OarCheckInRecordDTO> selOarRecordAndHouseVoList(OarCheckInRecordQuery oarCheckInRecordQuery);
}
